home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / AMIGA / (A)Z / (A)Z11.ADF / LOGO / README < prev    next >
Text File  |  1989-06-02  |  10KB  |  181 lines

  1. Unix Logo Interpreter
  2.     Brian Harvey
  3.     Lincoln-Sudbury Regional High School
  4.  
  5. This is release 4 of Unix Logo.  It differs from release 3 in that it
  6. more closely follows the syntax of LCSI versions of Logo (Apple Logo,
  7. IBM Logo, etc.)  In particular, multiple commands on a line are allowed
  8. without semicolons required between them.  The prompt character is '?'
  9. instead of '*' as before.  The abbreviations 'f', 'l', and 'top' have
  10. been eliminated.  Positioned text (cleartext and setcursor) are supported
  11. using termlib.  The 'random' primitive now takes an input, like 'rnd',
  12. instead of being equivalent to 'rnd 10' as before.  Error messages are
  13. closer to those in other versions of Logo.  Procedure names can be longer
  14. than 11 characters if your version of Unix has long file names.
  15.  
  16. The following obsolete paragraph is included to help users of previous
  17. versions understand the version history.
  18.  
  19. -----
  20. This is release 3.2 of Unix Logo.  Release 1 was the one on the first 1982
  21. Usenix tape.  Release 2 was sent by me (BH) directly to only a few sites.
  22. This release is much like release 2 in capabilities and syntax, but has
  23. been rearranged internally somewhat to make the process of installation
  24. on a new system a bit easier.  One major new feature in release 3 is the
  25. pause facility, which allows interactive debugging in the local context
  26. of an error.  More on this below.  Release 3.1 differs from 3 only in a
  27. few bug fixes and in what is left out under the SMALL option.  Release 3.2
  28. differs from release 3.1 in bug fixes, better error messages, and one
  29. incompatible change: the quotient of two integers can be a non-integer.
  30. -----
  31.  
  32. I would like to thank Don Martin and his students at the College of Marin,
  33. who have found huge numbers of obscure bugs in Logo and therefore helped
  34. make this release much more reliable than it would otherwise have been.
  35.  
  36. Logo is a programming language for education.  It is, I think, unquestionably
  37. the best introductory learning language now available, because it combines
  38. the ease of an interactive language (like BASIC, otherwise terrible) with
  39. the power and structure of a procedural language (like Pascal, not bad once
  40. you get past the details of editing and compiling and loading and semicolons
  41. and does var go before or after const).  If you aren't convinced, read the
  42. book "Mindstorms" by Seymour Papert.  It doesn't matter how old your
  43. students are.
  44.  
  45. This directory contains an interpreter for the Logo programming language.
  46. The interpreter is written in C and YACC, and runs under Unix(TM) version 7.
  47. It has been exported also to Vax 4BSD and to Idris on a PDP-11.  This program
  48. is based on a Logo interpreter originally written at the Boston Children's
  49. Museum; the present version is very much improved in its capabilities.  On
  50. the other hand, the original version ran in a 64Kb address space; this version
  51. requires split I/D on the PDP-11.  (It can be run on a smaller 11 by turning
  52. on the definition of SMALL in logo.h, but with hardly any recursion allowed.
  53. This configuration just barely works and is not recommended.  If someone with
  54. such a system wants to tune it up and send me the results, please do.  SMALL
  55. eliminates the pause feature (pause, continue, errpause, etc.) and the
  56. property list feature (pprop, gprop, etc.) as well as using short ints and
  57. floats instead of long ints and doubles.)
  58.  
  59. The file "logoman" in this directory is an nroff-format reference manual. It's
  60. very terse; you should really learn Logo from some other manual and use this
  61. one just to learn about idiosyncracies.  There are also two smaller
  62. documentation files, "applediff" for people accustomed to Apple
  63. Logo, and "olddiff" for people accustomed to the first LSRHS release.
  64. If you are getting this file via Usenet comp.sources.unix, you will
  65. have to do "cat logoman.[12] >logoman" first.
  66.  
  67. Users of the first release of LSRHS Logo (the one on the Usenix 82.1 tape)
  68. will find the present version more robust and also more featureful.  Its
  69. syntax is much like that of Apple Logo, which should be helpful to people
  70. with Apples as well as real computers.  Line numbers have been flushed,
  71. except for use with the go command.  The kludgy re-entrant use of the YACC
  72. parser has been eliminated.
  73.  
  74. The enclosed makefile should manage to compile this Logo with no errors.
  75. You will have to make some modifications for local conditions, most notably
  76. in the area of turtle graphics.  Most installation dependencies have been
  77. collected at the beginning of the file logo.h which is included in all
  78. compilations.
  79.  
  80. TURTLE GRAPHICS.  You must #define symbols in logo.h for the kind(s) of
  81. display hardware you support.  Also, if you have a graphics terminal which
  82. is not one of the ones already supported in this release, you'll have to
  83. add some code to turtle.c to support it.  The enclosed turtle.c
  84. knows about six kinds of graphics hardware:
  85.     1) Terrapin floor turtles, connected via DR11-K interfaces.
  86.     2) Atari 800 personal computers, running a special terminal program.
  87.     3) DEC GIGI graphics terminals.
  88.     4) Retrographics boards (known to work with ADM-5 terminals,
  89.         maybe also for other Retrographics products).
  90.     5) Tektronix 4014 storage tube displays (with severe restrictions
  91.         because of their inability to erase selectively).
  92.     6) Sun Microsystems workstations.
  93. The files ./*.i contain terminal-specific code which is #included in the
  94. compilation of turtle.c if the corresponding terminal is #defined in logo.h.
  95. The code for floor turtles is done very differently and is not separated into
  96. a .i file because, alas, it's not so modular.  If you have neither graphics
  97. terminals nor floor turtles, you should turn on the NOTURTLE definition in
  98. logo.h to eliminate the turtle primitives.
  99.  
  100. DEFAULT EDITOR.  The "edit" command in Logo does not use an editor built
  101. into Logo itself.  Instead, it forks and runs your favorite editor in a
  102. new process.  If you have an EDITOR variable in your environment, it uses
  103. that editor (it tries with /bin, /usr/bin, and nothing prepended).  If not,
  104. it uses the editor specified in the EDT definition in logo.h.  This is
  105. "jove" in the version as distributed.
  106.  
  107. INPUT WAITING TEST.  The "keyp" operation depends on a system call to
  108. check for characters waiting to be read from the keyboard.  If you are
  109. running a Berkeley-derived Unix, this will work correctly.  If not, but
  110. you have your own such system call, edit procedure keyp() in logoaux.c
  111. to use your own version.
  112.  
  113. FILENAME FORMAT.  Each Logo procedure is stored in a file called <name>.lg
  114. in the current working directory.  Under version 7 Unix, this allows names
  115. of procedures to be up to eleven letters long.  VMS filenames can only be
  116. nine letters.  The parameter NAMELEN in logo.h should be adjusted.  (Note:
  117. depending on when you got your version of Eunice, it may allow real Unix
  118. filenames, in which case you needn't worry about this.)
  119.  
  120. THE PAUSE FEATURE.  You can pause on an error
  121. inside a procedure, so you can examine the context interactively.  The
  122. pause feature distinguishes SIGINT and SIGQUIT, which were treated identically
  123. in earlier releases.  In the normal distribution, SIGQUIT returns to toplevel,
  124. whereas SIGINT causes a pause.  The problem is with Eunice, which doesn't
  125. provide SIGQUIT because VMS doesn't have enough interrupt characters.
  126. Therefore, the standard distribution allows pausing but not quitting to
  127. toplevel, although you can say "toplevel" while paused.  If you'd rather
  128. have quitting be the default, as in previous releases, interchange the
  129. definitions of PAUSESIG and OTHERSIG in logo.h; there are also commands
  130. to allow the user to make this switch dynamically.
  131.  
  132. (Eunice users:  Until just recently, an obscure bug in Eunice had the effect
  133. that when you type ^C you don't see a prompt until you hit return.  The switch
  134. called EUNICE in logo.h enables a workaround for this bug.  Dave Kashtan has
  135. now fixed the underlying problem, but not necessarily in the version you have.
  136. If you get too few prompts, turn on the #define EUNICE; if too many prompts,
  137. turn it off.)
  138.  
  139. -----
  140. INSTALLATION etc.
  141.  
  142. Saying "make install" after you compile your Logo will install Logo in
  143. /bin/logo and will also set up two directories:
  144.     /usr/lib/logo    Library routines written in Logo for general use
  145.                 Also stuff for edit and pots commands.
  146.     /usr/doc/logo    Excerpts from the manual for the "describe" command
  147. The files in these directories are copied, not moved; you can delete the
  148. originals if you prefer.  See the makefile.  These directories must have
  149. the names shown here, although you can put logo itself somewhere other than
  150. /bin if you prefer.
  151.  
  152. There are three C source files included here which are not part of the Logo
  153. interpreter itself.  One, logohead.c, is used to compile the program
  154. /usr/lib/logo/logohead which is used for the pots command.  Another,
  155. splithelp.c, is part of the makehelp shell script which is used to generate
  156. the online help messages from the manual.  The third C file,
  157. dr11k.c, is a device driver for version 7 for a DEC DR11-K used to interface
  158. Terrapin floor turtles (you get two per DR11-K) to the PDP-11.  The interface
  159. costs much more than the turtles!
  160.  
  161. INCOMPATIBILITY WITH RELEASE 2.  (This release is VERY incompatible with
  162. release 1; see the file olddiff for details.)  To be compatible
  163. with VMS restricted filenames, to run under Eunice, the names of files used
  164. to store Logo procedure definitions have been changed from foo.logo to
  165. foo.lg (some installations have a version of release 2 in which the name
  166. foo.log is used, but that looks too much like a log file from a batch job;
  167. the new version seems more Unixy anyway).  If you prefer to keep the old
  168. convention of .logo names, turn on the definition of EXTLOGO in logo.h.
  169.  
  170. Check your makefile to be sure it refers to "y.tab.c" and "y.tab.o" on
  171. Unix, "ytab.c" and "ytab.o" on Eunice.  (Again, some versions of Eunice
  172. use the real Unix filenames.)
  173.  
  174. If you have questions about this Logo, try
  175.     Computer Department
  176.     Lincoln-Sudbury Regional High School
  177.     390 Lincoln Road
  178.     Sudbury, MA  01776
  179.     617 443-9961
  180.  
  181.